/*
 * DppmParams.h
 *
 *  Created on: 20/01/2014
 *      Author: root
 */

#ifndef DPPMPARAMS_H_
#define DPPMPARAMS_H_

struct Activity{
	int numPreds;
	int* preds;

	int numModes;
 	int* costs;
 	int* times;
};

struct DppmParams{
	int deadline;
	int numAct;
	Activity* acts;
};

void InitializeDppm(DppmParams &dppm, int numAct, int T, int* numPreds, int** Preds, int* numModes, int** ModesCosts, int** ModesTimes);
void FreeMemory(DppmParams &dppm);

int GetDeadline(DppmParams &dppm);
int GetNumActivities(DppmParams &dppm);
int GetActivityNumModes(DppmParams &dppm, int act);
int* GetActivityModesCosts(DppmParams &dppm, int act);
int* GetActivityModesTimes(DppmParams &dppm, int act);
int GetActivityNumPreds(DppmParams &dppm, int act);
int* GetActivityPreds(DppmParams &dppm, int act);

//Utiles
int GetSolutionCost(DppmParams &dppm, int* R);
int GetPartialSolutionCost(DppmParams &dppm, int* R, int lastAct);
//Agregar mas a demanda

#endif /* DPPMPARAMS_H_ */
